home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / flexcat1_4.lha / flexcat / lib / AmigaOberon.sd next >
Text File  |  1994-10-31  |  2KB  |  81 lines

  1. ##stringtype Oberon
  2. ##shortstrings
  3. (****************************************************************
  4.    This file was created automatically by `FlexCat V1.4'
  5.    from "%f0.ct".
  6.    Do NOT edit by hand!
  7.    AmigaOberon source description © 1994 by Albert Weinert
  8.    Using with AmigaOberon Interfaces for AmigaOS Release 3.1
  9. ****************************************************************)
  10.  
  11. MODULE %f3;
  12.  
  13. IMPORT
  14.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  15.  
  16. CONST
  17.   builtinlanguage = %l;
  18.   version = %v;
  19.  
  20.   %i* = %d;\n  %iSTR = %s;\n
  21.  
  22. TYPE
  23.   AppString = STRUCT
  24.      id  : LONGINT;
  25.      str : e.LSTRPTR;
  26.   END;
  27.   AppStringArray = ARRAY %n OF AppString;
  28.  
  29. CONST
  30.   AppStrings = AppStringArray (
  31.     %i, y.ADR(%iSTR)%(,)
  32.   );
  33.  
  34. VAR
  35.   catalog : lo.CatalogPtr;
  36.  
  37.   PROCEDURE CloseCatalog*();
  38.     BEGIN
  39.       IF catalog # NIL THEN lo.CloseCatalog (catalog); catalog:=NIL END;
  40.    END CloseCatalog;
  41.  
  42.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  43.     VAR Tag : u.Tags4;
  44.     BEGIN
  45.       CloseCatalog();
  46.       IF (catalog = NIL) & (lo.base # NIL) THEN
  47.     Tag:= u.Tags4(lo.builtInLanguage, y.ADR(builtinlanguage),
  48.               u.skip, u.done,
  49.               lo.version, version,
  50.               u.done, u.done);
  51.     IF language # "" THEN
  52.       Tag[1].tag:= lo.language; Tag[1].data := y.ADR( language );
  53.     END;
  54.     catalog := lo.OpenCatalogA (loc, "%b.catalog", Tag);
  55.       END;
  56.     END OpenCatalog;
  57.  
  58.   PROCEDURE GetString* (num: LONGINT): e.LSTRPTR;
  59.     VAR
  60.       i: LONGINT;
  61.       default: e.LSTRPTR;
  62.     BEGIN
  63.       i := 0; WHILE (i < %n) AND (AppStrings[i].id # num) DO INC (i) END;
  64.  
  65.       IF i # %n THEN
  66.       default := AppStrings[i].str;
  67.       ELSE
  68.     default := NIL;
  69.       END;
  70.  
  71.       IF catalog # NIL THEN
  72.     RETURN lo.GetCatalogStr (catalog, num, default^);
  73.       ELSE
  74.     RETURN default;
  75.       END;
  76.     END GetString;
  77.  
  78. CLOSE
  79.   CloseCatalog();
  80. END %f3.
  81.